package com.dragon.modules.yuegou.service.product;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.modules.yuegou.entity.product.StockEntity;
import com.dragon.modules.yuegou.enums.product.StockChangeType;
import com.dragon.modules.yuegou.model.product.Stock;

/**
 * 库存信息表 服务接口
 *
 * @author px
 * @date 2019-04-17 14:44:42
 * @version 2.0
 */
public interface StockService extends IService<StockEntity> {
	
	/**
	 * 修改库存（余量）
	 * @param skuId SKU ID
	 * @param increase 库存增量(正表示添加、负数表示扣除）
	 * @param type 库存变更类型：0-下单-ORDER、1-取消订单-CANCEL
	 */
	void changeStock(String skuId, int increase, StockChangeType type);
	
	/**
	 * 修改库存（总量） 
	 * 只允许后端系统编辑时使用
	 * @param skuId SKU ID
	 * @param increase 库存增量(正表示添加、负数表示扣除）
	 * @param type 库存变更类型：2-新增商品-INIT、3-后台编辑-EDIT
	 */
	void changeTotal(String skuId, int increase, StockChangeType type);
	
	/**
	 * 获取sku库存
	 * @param skuId
	 */
	Integer getStockBySkuId(String skuId);
	
	/**
	 * 获取sku的Stock信息
	 * @param skuId
	 */
	Stock getStockInfoBySkuId(String skuId);
}